using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
using Credinka.Ayni.SEA.EN;

namespace Credinka.Ayni.SEA.AD
{
    public class adFormulario : adGeneral
    {
        public adFormulario(SqlConnection con)
        {
            conexion = con;
        }

        public List<enFormulario> fListar(enFormulario poenFormulario)
        {
            List<enFormulario> loenFormulario = null;
            SqlCommand cmd = new SqlCommand("sSEA_ConsultarFormulario", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piNumeroPagina", SqlDbType.Int).Value = poenFormulario.NumeroPagina;
            cmd.Parameters.Add("@piNumeroRegistros", SqlDbType.Int).Value = poenFormulario.NumeroRegistros;
            cmd.Parameters.Add("@pvNombre", SqlDbType.VarChar).Value = poenFormulario.Nombre;
            cmd.Parameters.Add("@piCodigoEstadoFormulario", SqlDbType.Int).Value = poenFormulario.CodigoEstado;
            cmd.Parameters.Add("@piCodigoSistema", SqlDbType.Int).Value = poenFormulario.CodigoSistema;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_TotalRegistros = drd.GetOrdinal("TotalRegistros");
                int pos_RowNumber = drd.GetOrdinal("RowNumber");
                int pos_IdFormulario = drd.GetOrdinal("iIdFormulario");
                int pos_Nombre = drd.GetOrdinal("vNombre");
                int pos_CodigoEstado = drd.GetOrdinal("iCodigoEstado");
                int pos_Estado = drd.GetOrdinal("estado");
                loenFormulario = new List<enFormulario>();
                enFormulario oenFormulario;
                while (drd.Read())
                {
                    oenFormulario = new enFormulario();
                    oenFormulario.TotalRegistros = drd.GetInt32(pos_TotalRegistros);
                    oenFormulario.RowNumber = drd.GetInt32(pos_RowNumber);
                    oenFormulario.IdFormulario = drd.GetInt32(pos_IdFormulario);
                    oenFormulario.Nombre = (drd.IsDBNull(pos_Nombre) ? "" : drd.GetString(pos_Nombre));
                    oenFormulario.CodigoEstado = (drd.IsDBNull(pos_CodigoEstado) ? 0 : drd.GetInt32(pos_CodigoEstado));
                    oenFormulario.estado = (drd.IsDBNull(pos_Estado) ? "" : drd.GetString(pos_Estado));
                    loenFormulario.Add(oenFormulario);
                }
            }
            return (loenFormulario);
        }

        public List<enFormulario> fListar()
        {
            List<enFormulario> loenFormulario = null;
            SqlCommand cmd = new SqlCommand("sSEA_ListarFormulario", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_IdFormulario = drd.GetOrdinal("iIdFormulario");
                int pos_Nombre = drd.GetOrdinal("vNombre");
                int pos_Decripcion = drd.GetOrdinal("vDecripcion");
                loenFormulario = new List<enFormulario>();
                enFormulario oenFormulario;
                while (drd.Read())
                {
                    oenFormulario = new enFormulario();
                    oenFormulario.IdFormulario = (drd.IsDBNull(pos_IdFormulario) ? 0 : drd.GetInt32(pos_IdFormulario));
                    oenFormulario.Nombre = (drd.IsDBNull(pos_Nombre) ? "" : drd.GetString(pos_Nombre));
                    oenFormulario.Decripcion = (drd.IsDBNull(pos_Decripcion) ? "" : drd.GetString(pos_Decripcion));
                    loenFormulario.Add(oenFormulario);
                }
            }
            return (loenFormulario);
        }

        public enFormulario fObtener(enFormulario poenFormulario)
        {
            enFormulario oenFormulario = null;
            SqlCommand cmd = new SqlCommand("sSEA_ObtenerFormulario", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@pidFormulario", SqlDbType.Int).Value = poenFormulario.IdFormulario;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_IdFormulario = drd.GetOrdinal("iIdFormulario");
                int pos_Nombre = drd.GetOrdinal("vNombre");
                int pos_Decripcion = drd.GetOrdinal("vDecripcion");
                int pos_Version = drd.GetOrdinal("vVersion");
                int pos_TiempoSesion = drd.GetOrdinal("iTiempoSesion");
                int pos_CodigoEstado = drd.GetOrdinal("iCodigoEstado");

                while (drd.Read())
                {
                    oenFormulario = new enFormulario();
                    oenFormulario.IdFormulario = (drd.IsDBNull(pos_IdFormulario) ? 0 : drd.GetInt32(pos_IdFormulario));
                    oenFormulario.Nombre = (drd.IsDBNull(pos_Nombre) ? "" : drd.GetString(pos_Nombre));
                    oenFormulario.Decripcion = (drd.IsDBNull(pos_Decripcion) ? "" : drd.GetString(pos_Decripcion));
                    oenFormulario.Version = (drd.IsDBNull(pos_Version) ? "" : drd.GetString(pos_Version));
                    oenFormulario.TiempoSesion = (drd.IsDBNull(pos_TiempoSesion) ? 0 : drd.GetInt32(pos_TiempoSesion));
                    oenFormulario.CodigoEstado = (drd.IsDBNull(pos_CodigoEstado) ? 0 : drd.GetInt32(pos_CodigoEstado));
                }
            }
            return (oenFormulario);
        }

        public int fRegistrar(enFormulario poenFormulario)
        {
            int N = -1;
            SqlCommand cmd = new SqlCommand("sSEA_RegistrarFormulario", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@pivNombre", SqlDbType.VarChar).Value = poenFormulario.Nombre;
            cmd.Parameters.Add("@pivDecripcion", SqlDbType.VarChar).Value = poenFormulario.Decripcion;
            cmd.Parameters.Add("@pvVersion", SqlDbType.VarChar).Value = poenFormulario.Version;
            cmd.Parameters.Add("@piTiempoSesion", SqlDbType.Int).Value = poenFormulario.TiempoSesion;
            cmd.Parameters.Add("@piiCodigoEstado", SqlDbType.Int).Value = poenFormulario.CodigoEstado;
            cmd.Parameters.Add("@pivAudNombreUsuarioCreacion", SqlDbType.VarChar).Value = poenFormulario.AudNombreUsuarioCreacion;
            cmd.Parameters.Add("@pivAudIPCreacion", SqlDbType.VarChar).Value = poenFormulario.AudIPCreacion;
            cmd.Parameters.Add("@pivAudMacCreacion", SqlDbType.VarChar).Value = poenFormulario.AudMacCreacion;

            N = Convert.ToInt32(cmd.ExecuteScalar());
            return N;
        }

        public int fModificar(enFormulario poenFormulario)
        {
            int N = -1;
            SqlCommand cmd = new SqlCommand("sSEA_ModificarFormulario", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piiIdFormulario", SqlDbType.Int).Value = poenFormulario.IdFormulario;
            cmd.Parameters.Add("@pivNombre", SqlDbType.VarChar).Value = poenFormulario.Nombre;
            cmd.Parameters.Add("@pivDecripcion", SqlDbType.VarChar).Value = poenFormulario.Decripcion;
            cmd.Parameters.Add("@piTiempoSesion", SqlDbType.Int).Value = poenFormulario.TiempoSesion;
            cmd.Parameters.Add("@pvVersion", SqlDbType.VarChar).Value = poenFormulario.Version;
            cmd.Parameters.Add("@piiCodigoEstado", SqlDbType.Int).Value = poenFormulario.CodigoEstado;
            cmd.Parameters.Add("@pivAudNombreUsuarioModificacion", SqlDbType.VarChar).Value = poenFormulario.AudNombreUsuarioModificacion;
            cmd.Parameters.Add("@pivAudIPModificacion", SqlDbType.VarChar).Value = poenFormulario.AudIPModificacion;
            cmd.Parameters.Add("@pivAudMacModificacion", SqlDbType.VarChar).Value = poenFormulario.AudMacModificacion;

            N = Convert.ToInt32(cmd.ExecuteScalar());

            return (N);
        }

        public int fEliminar(enFormulario poenPerfil)
        {
            int N = -1;
            SqlCommand cmd = new SqlCommand("sSEA_EliminarFormulario", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piiIdFormulario", SqlDbType.Int).Value = poenPerfil.IdFormulario;
            cmd.Parameters.Add("@pivAudNombreUsuarioModificacion", SqlDbType.VarChar).Value = poenPerfil.AudNombreUsuarioModificacion;
            cmd.Parameters.Add("@pivAudIPModificacion", SqlDbType.VarChar).Value = poenPerfil.AudIPModificacion;
            cmd.Parameters.Add("@pivAudMacModificacion", SqlDbType.VarChar).Value = poenPerfil.AudMacModificacion;
            N = Convert.ToInt32(cmd.ExecuteScalar());
            return (N);
        }

        public int fContar()
        {
            int totalFormulario;
            SqlCommand cmd = new SqlCommand("sSEA_ContarFormulario", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            totalFormulario = (int)cmd.ExecuteScalar();
            return (totalFormulario);
        }
    }
}

